import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vite.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    // 增加服务器配置确保代理正常工作
    port: 5173,
    host: true,
    strictPort: true,
    proxy: {
      // 统一代理所有API请求到后端
      '/api': {
        target: 'http://localhost:8000',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
        // 增加超时配置
        timeout: 600000, // 设置为10分钟超时
        // 确保WebSocket代理正确配置（如果需要）
        ws: true,
        // 处理路径重写可能的问题
        configure: (proxy, options) => {
          // 添加额外的配置
          options.headers = {
            'Connection': 'keep-alive'
          };
          
          // 监听代理请求事件以进行调试
          proxy.on('proxyReq', (_proxyReq, req, _res) => {
            if (req.url) {
              console.log(`[Proxy] ${req.method} ${req.url} -> ${options.target}${req.url.replace('/api', '')}`);
            }
          });
          
          proxy.on('proxyRes', (proxyRes, req, _res) => {
            if (req.url) {
              console.log(`[Proxy] ${req.method} ${req.url} <- ${proxyRes.statusCode}`);
            }
          });
        }
      },
      // 代理静态资源路径到后端
      '/static': {
        target: 'http://localhost:8000',
        changeOrigin: true
      }
    }
  }
})
